    .arch armv5t
    @ comm section save global variable without initialization
    .comm n, 4
    .text
    .align 2
    @ rodata section save constant
    .section .rodata
    .align 2
_str0:
    .ascii "%d\0" @\000 is also one representation for `null character`
    .align 2
_str1:
    .ascii "%d\n"
    @ text section code
    .text
    .align 2
    
    .global main
main:
    push {fp, lr}
    add fp, sp, #4 @store fp
    ldr r1, _bridge @ r1 = &n
    ldr r0, _bridge+4 @ *r0 = "%d\0"
    bl __isoc99_scanf @ cin << n
    ldr r2, _bridge @ r2 = &n
    ldr r5, [r2] @ r5 = n
    mov r2, #0 @ a = 0
    mov r7, #1 @ b = 1
    mov r4, #1 @ i = 1
    ldr r0, _bridge+8 @ *r0 = "%d\n"
    mov r1, r2
    bl printf @ cout << a
    ldr r0, _bridge+8 @ *r0 = "%d\n"
    mov r1, r7
    bl printf @ cout << b
.f:
    mov r6, r7 @ t = b
    add r7, r2, r7 @ b = a + b
    ldr r0, _bridge+8 @ *r0 = "%d\n"
    mov r1, r7
    bl printf @ cout << b
    mov r2, r6 @ a = t
    add r4, r4, #1 @ i = i + 1
    cmp r4, r5 
    blt .f @ i < n  ->for()
.END:
    mov r0, #0
    pop {fp, pc} @ return 0

_bridge:
    .word n
    .word _str0
    .word _str1